package com.xueyi.workflow.service;

import com.xueyi.workflow.domain.dto.StartProcessDto;
import com.xueyi.workflow.domain.dto.CompleteTaskDto;
import com.xueyi.workflow.domain.vo.TaskVo;
import com.xueyi.common.core.web.result.AjaxResult;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;

/**
 * 流程服务接口
 *
 * @author xueyi
 * @date 2024-07-03
 */
public interface ProcessService {
    
    /**
     * 部署流程
     *
     * @param file BPMN文件
     * @return 部署结果
     */
    AjaxResult deployProcess(MultipartFile file);
    
    /**
     * 启动流程
     *
     * @param dto 启动流程参数
     * @return 启动结果
     */
    AjaxResult startProcess(StartProcessDto dto);
    
    /**
     * 获取任务列表
     *
     * @param assignee 任务处理人
     * @return 任务列表
     */
    AjaxResult getTasks(String assignee);
    
    /**
     * 完成任务
     *
     * @param dto 完成任务参数
     * @return 完成结果
     */
    AjaxResult completeTask(CompleteTaskDto dto);
    
    /**
     * 获取流程历史
     *
     * @param processInstanceId 流程实例ID
     * @return 流程历史
     */
    AjaxResult getProcessHistory(String processInstanceId);
}
